<?php
/*
 * Pacientes con estado 1 (activo): Funcionalidades: Listar, Editar, Eliminar, Ver.
 * @Autor: Andrés Ubilla.
 */
class Listar extends TPage{
    
    public function onLoad($param){
        parent::onLoad($param);
        
        if(!$this->IsPostBack){
            $this->validarSession();
            $this->cargarInterfaz();
        }
    }
    
    private function validarSession(){
        $oUsuario = Util::getSession("Usuario");        
        if (Util::isNullOrEmpty($oUsuario)){
            $this->Response->redirect($this->Service->constructUrl("Home"));
        }        
    }
    
    private function cargarInterfaz(){        
        $arr = $this->obtenerPacientes();
        $this->iniciarControles($arr);
    }        
    
    private function obtenerPacientes(){
        $oPaciente = new Paciente();
        $oPacienteBLL = new PacienteBLL();
        $arr = $oPacienteBLL->listar($oPaciente);       
        
        return $arr;
    }
    
    private function iniciarControles($arr){
        $mensaje = Util::getSession("Mensaje");
        if(!Util::isNullOrEmpty($mensaje)){
            $this->litAlert->Text = $mensaje;
            Util::setSession("Mensaje", null);
        }
        if(count($arr) > 0){          
            $this->pnlCabecera->Visible = false;
            $this->pnlSinRegistros->Visible = false;
            $this->pnlPacientes->Visible = true;
            $this->dgPacientes->DataSource = $arr;
            $this->dgPacientes->dataBind();
        }else{
            $this->pnlCabecera->Visible = true;
            $this->pnlPacientes->Visible = false;
            $this->pnlSinRegistros->Visible = true;
        }
    }    
    
    public function cargarClasePaciente($sender, $param){ 
        $item = $param->Item;
        if($item->ItemType === "Item" || $item->ItemType === "AlternatingItem"){
            try{
                $idPaciente = $item->FindControl("txtIdPaciente");
                $oPaciente = new Paciente();
                $oPacienteBLL = new PacienteBLL();
                $oPaciente = $oPacienteBLL->obtenerPorId($idPaciente->Value);
                
                if($oPaciente->getRut() == null || $oPaciente->getSexo() == null || $oPaciente->getEmail() == null
                        || $oPaciente->getFechaNacimiento() == null || $oPaciente->getTelefono() == null
                        || $oPaciente->getActividad() == null || $oPaciente->getImagen() == "./themes/default/img/fotos/anonimo.gif"){
                    $item->Attributes->Add("class","error");                    
                }else{
                    $item->Attributes->Add("class","success");
                }                
            }catch(Exception $e){
                throw new Exception($e->getMessage());
            }
        }
    }

    public function btnEliminarOnClick($sender, $param){
        $id = $this->idPaciente->Value;
        
        $oPacienteBLL = new PacienteBLL();
        $resultado = $oPacienteBLL->eliminar($id);
        
        if(!Util::isNullOrEmpty($resultado)){
            $this->litAlert->Text = Util::setMensajeUsuario("Error al eliminar al paciente, por favor vuelva a intentarlo.", Util::MENSAJE_ERROR);
        }else{
            $this->cargarInterfaz();
            $this->litAlert->Text = Util::setMensajeUsuario("Paciente eliminado exitosamente.", Util::MENSAJE_OK);            
        }
    }            
}
?>